#########################

use Test::More tests => 28;
use Test::Fatal;
use strict;
use warnings;

BEGIN { use_ok('Number::Fraction') };

#########################
{
	my $frac = Number::Fraction->new(num => 3, den => 5);
	isa_ok ($frac, 'Number::Fraction');
	is($frac->{num}, 3, ' ... valor correcto para el numerador');
	is($frac->{den}, 5, ' ... valor correcto para el denominador');
	my $frac1 = Number::Fraction->new();
	isa_ok ($frac1, 'Number::Fraction');
	is($frac1->{num}, 0, ' ... valor correcto para el numerador');
	is($frac1->{den}, 1, ' ... valor correcto para el denominador');
	my $frac2 = Number::Fraction->new("7/5");
	isa_ok ($frac2, 'Number::Fraction');
	is($frac2->{num}, 7, ' ... valor correcto para el numerador');
	is($frac2->{den}, 5, ' ... valor correcto para el denominador');
	my $frac3 = Number::Fraction->new(8);
	isa_ok ($frac3, 'Number::Fraction');
	is($frac3->{num}, 8, ' ... valor correcto para el numerador');
	is($frac3->{den}, 1, ' ... valor correcto para el denominador');
	my $frac4 = Number::Fraction->new($frac);
	isa_ok ($frac4, 'Number::Fraction');
	is($frac4->{num}, 3, ' ... valor correcto para el numerador');
	is($frac4->{den}, 5, ' ... valor correcto para el denominador');
	my $suma = $frac + $frac2;    #el programa simplifica las fracciones asi que pediremos los valores simplificados.
	isa_ok ($suma, 'Number::Fraction');
	is($suma->{num}, 2, ' ... valor correcto para el numerador');
	is($suma->{den}, 1, ' ... valor correcto para el denominador');
	my $resta = $frac - $frac2;    #el programa simplifica las fracciones asi que pediremos los valores simplificados.
	isa_ok ($resta, 'Number::Fraction');
	is($resta->{num}, -4, ' ... valor correcto para el numerador');
	is($resta->{den}, 5, ' ... valor correcto para el denominador');
	my $prod = $frac * $frac2;    #el programa simplifica las fracciones asi que pediremos los valores simplificados.
	isa_ok ($prod, 'Number::Fraction');
	is($prod->{num}, 21, ' ... valor correcto para el numerador');
	is($prod->{den}, 25, ' ... valor correcto para el denominador');
	my $div = $frac / $frac2;    #el programa simplifica las fracciones asi que pediremos los valores simplificados.
	isa_ok ($div, 'Number::Fraction');
	is($div->{num}, 3, ' ... valor correcto para el numerador');
	is($div->{den}, 7, ' ... valor correcto para el denominador');
}
